import {TaskBase} from "./TaskBase";

export interface ITaskManager {

    /**获取任务数量。*/
    Count(): number;

    /**
     *  生成任务。
     * @param priority
     * @constructor
     */
    GenerateTask<T extends TaskBase>(type:(new()=>T),priority?: number): T

    /**
     * 取消任务。
     * @param serialId
     * @constructor
     */
    CancelTask(serialId:TaskBase|number,reason?:string):boolean;

    CancelAllTasks(reason:string):void;

}